package com.ruoyi.basedata.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.basedata.domain.Concentrator;
import com.ruoyi.basedata.domain.vo.ConcentratorProtocol;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 集中器管理Mapper接口
 *
 * @author ruoyi
 * @date 2023-12-18
 */
public interface ConcentratorMapper extends BaseMapper<Concentrator>
{
    /**
     * 查询集中器管理
     *
     * @param ID 集中器管理主键
     * @return 集中器管理
     */
    public Concentrator selectConcentratorByID(Long ID);

    /**
     * 查询集中器管理列表
     *
     * @param concentrator 集中器管理
     * @return 集中器管理集合
     */
    public List<Concentrator> selectConcentratorList(Concentrator concentrator);

    /**
     * 新增集中器管理
     *
     * @param concentrator 集中器管理
     * @return 结果
     */
    public int insertConcentrator(Concentrator concentrator);

    /**
     * 修改集中器管理
     *
     * @param concentrator 集中器管理
     * @return 结果
     */
    public int updateConcentrator(Concentrator concentrator);

    /**
     * 删除集中器管理
     *
     * @param ID 集中器管理主键
     * @return 结果
     */
    public int deleteConcentratorByID(Long ID);

    /**
     * 批量删除集中器管理
     *
     * @param IDs 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteConcentratorByIDs(Long[] IDs);

    public List<ConcentratorProtocol> selectConcentratorProtocolList(Concentrator concentrator);

    /**
     * 查找出所有集中器名称
     * @return 所有集中器名称
     */
    List<String> selectAllConcentratorName();
    /**
     * 查找出所有集中器地址
     * @return 所有所有集中器地址
     */
    List<String> selectAllConcentratorAddress();

    /**
     * 批量新增集中器
     * @param list list
     * @return 影响行数
     */
    int insertConcentratorBatch(@Param("list") List<Concentrator> list);
}
